package cn.catsdad.tenant.listener;

import cn.catsdad.base.entity.BaseTenantEntity;
import cn.catsdad.util.AuthUtil;
import jakarta.persistence.*;

/**
 * 租户实体监听器，在保存和更新之前给实体设置租户id
 *
 * @author xuyl
 * @version 1.0 2024/6/29
 */
public class TenantListener<T extends BaseTenantEntity> {

    @PrePersist
    public void prePersist(T entity) {
        fillingTenantId(entity);
    }

    @PreUpdate
    public void preUpdate(T entity) {
        fillingTenantId(entity);
    }

    private void fillingTenantId(T entity) {
        if (entity != null) {
            if (entity.getTenantId() == null) {
                entity.setTenantId(AuthUtil.getCurrentTenantId());
            }
        }
    }
}
